<test>
    <settings>
        <max_threads>1</max_threads>
    </settings>

    <substitutions>
        <substitution>
           <name>aggregationscale_all</name>
           <values>
               <value>5555555</value>
               <value>555555</value>
               <value>111111</value>
               <value>11111</value>
           </values>
       </substitution>
       <substitution>
           <name>aggregationscale_small</name>
           <values>
               <value>111111</value>
               <value>11111</value>
           </values>
       </substitution>
       <substitution>
           <name>aggregationscale_big</name>
           <values>
               <value>5555555</value>
               <value>555555</value>
           </values>
       </substitution>
    </substitutions>

    <create_query>
        create table mingroupby_orderbylimit1_{aggregationscale_all}_tuple
        Engine=MergeTree order by tuple() AS
        select toUInt64( number % {aggregationscale_all} ) key, toUInt64(1) value
        from numbers(2000000);
    </create_query>
    
    <create_query>
        create table mingroupby_orderbylimit1_{aggregationscale_all}_key_value
        Engine=MergeTree order by (key,value) AS
        select toUInt64( number % {aggregationscale_all} ) key, toUInt64(1) value
        from numbers(2000000);
    </create_query>
    
    <query tag='UsingGroupbyMinTuple'>
         SELECT key, min(value)
         FROM mingroupby_orderbylimit1_{aggregationscale_big}_tuple
         group by key format Null;
    </query>
    
    <query tag='UsingGroupbyMinKV'>
         SELECT key, min(value)
         FROM mingroupby_orderbylimit1_{aggregationscale_big}_key_value
         group by key format Null;
    </query>
    
    <query tag='UsingOrderbyLimit1Tuple'>
         SELECT key, value
         FROM mingroupby_orderbylimit1_{aggregationscale_small}_tuple
         order by key, value limit 1 by key format Null;
     </query>

    <query tag='UsingOrderbyLimit1KV'>
         SELECT key, value
         FROM mingroupby_orderbylimit1_{aggregationscale_small}_key_value
         order by key, value limit 1 by key format Null;
     </query>
    
     <drop_query> DROP TABLE IF EXISTS mingroupby_orderbylimit1_{aggregationscale_all}_tuple </drop_query>
     <drop_query> DROP TABLE IF EXISTS mingroupby_orderbylimit1_{aggregationscale_all}_key_value </drop_query>

</test>
